﻿using System;
using Csla;
using DemoCSLA.DalLinq;

namespace DemoCSLA.Libreria.SoloLectura
{

    //******************************************
    //Clase generada por un Snippet de Erick Orlando © 2010
    //******************************************


    //Agregue aqui las importaciones necesarias

    [Serializable()]
    public partial class ClientesInfo : ReadOnlyBase<ClientesInfo>
    {

        #region Propiedades públicas

        private static PropertyInfo<string> IdClienteProperty = RegisterProperty(new PropertyInfo<string>("IdCliente"));
        public string IdCliente
        {
            get { return GetProperty(IdClienteProperty); }
        }

        private static PropertyInfo<string> NombresProperty = RegisterProperty(new PropertyInfo<string>("Nombres"));
        public string Nombres
        {
            get { return GetProperty(NombresProperty); }
        }


        private static PropertyInfo<string> ApellidosProperty = RegisterProperty(new PropertyInfo<string>("Apellidos"));
        public string Apellidos
        {
            get { return GetProperty(ApellidosProperty); }
        }


        private static PropertyInfo<string> CorreoProperty = RegisterProperty(new PropertyInfo<string>("Correo"));
        public string Correo
        {
            get { return GetProperty(CorreoProperty); }
        }

        private static PropertyInfo<int> EdadProperty = RegisterProperty(new PropertyInfo<int>("Edad"));
        public int Edad
        {
            get { return GetProperty(EdadProperty); }
        }

        #endregion //Propiedades públicas

        #region Métodos de instanciación

        private ClientesInfo()
        {
            //Constructor Privado
        }

        internal static ClientesInfo GetClientesInfo(Cliente dr)
        {
            ClientesInfo obj = new ClientesInfo();
            obj.Fetch(dr);
            return obj;
        }

        private void Fetch(Cliente dr)
        {
            LoadProperty(IdClienteProperty, dr.IdCliente);
            LoadProperty(NombresProperty, dr.Nombres);
            LoadProperty(ApellidosProperty, dr.Apellidos);
            LoadProperty(CorreoProperty, dr.Correo);
            LoadProperty(EdadProperty, dr.Edad);
        }

        #endregion
    }

}
